1. Field of the Invention
The present invention relates generally to data flow type information processors, and more particularly, data flow type information processors for executing data flow program including instructions for performing a numerical value operation processing or a logical operation processing with respect to two sets of data and a processing method thereof.
2. Description of the Background Art
In a conventional von Neuman type computer, various instructions are stored in advance as a program in program memories, and addresses in the program memories are sequentially designated by a program counter so that the instructions are sequentially read out to be executed.
On the other hand, a data flow type information processor is one type of non-yon Neuman type computer having no concept of sequential execution of instructions by a program counter. Such a data flow type information processor employs architecture based on a parallel processing of instructions. In the data flow type information processor, immediately after data which are objects of an operation are collected, it becomes possible to execute an instruction and a plurality of instructions are simultaneously driven by the data, so that program is executed in parallel in accordance with the natural flow of the data. As a result, it is considered that the time required for the operation is significantly reduced.
FIG. 1 is a block diagram showing one example of a structure of a conventional data flow type information processor. FIG. 2 is a diagram showing one example of a field structure of a data packet to be processed by the information processor.
A data packet 60 shown in FIG. 2 includes a destination field 41, an instruction field 42, a data 1 field 43, and a data 2 field 44. The destination field stores destination information, the instruction field 42 stores instruction information, and the data 1 field 43 or the data 2 field 44 stores operand data.
The information processor shown in FIG. 1 includes a program storing portion 1, a data pair detecting portion 2 and an operation processing portion 3. The program storing portion 1 stores data flow program 70 shown in FIG. 3. The program storing portion 1 reads, as shown in FIG. 3, destination information 71, instruction information 72 and copy presence/absence information 73 of the data flow program 70 by addressing based on destination information of an inputted data packet 60, stores the destination information 71 and the instruction information 72 in the destination field 41 and the instruction field 42 of the data packet 60, respectively, and outputs the data packet 60. The data pair detecting portion 2 queues the data packets 60 outputted from the program storing portion 1. More specifically, the data pair detecting portion 2 detects two different data packets having the same destination information, stores operand data of one of the data packets 60, for example, the contents of the data 1 field 43 shown in FIG. 2, in the data 2 field 44 of the other data packet 60, and outputs the other data packet 60. The operation processing portion 3 performs an operation processing with respect to the data packet 60 outputted from the data pair detecting portion 2, in accordance with the instruction information, stores the result of the operation processing in the data 1 field 43 of the data packet, and outputs the data packet 60 to the program storing portion 1.
The program storing portion 1 and the data pair detecting portion 2 are coupled to each other by data transmission path 4. The data transmission path 4 is branched into two and coupled to two input ports of the data pair detecting portion 2. The data packet 60 outputted from the program storing portion 1 is selectively inputted to either of the input ports of the data pair detecting portion 2, in response to the operand data being right operand data or left operand data in the operation processing. In addition, the data pair detecting portion 2 and the operation processing portion 3 are coupled to each other by a data transmission path 5 and the operation processing portion 3 and the program storing portion 1 are coupled to each other by a data transmission path 6.
As the data packets 60 continue to circulate through the program storing portion 1, the data pair detecting portion 2, the operation processing portion 3 and the program storing portion 1, the operation processing in accordance with the data flow program 70 stored in the program storing portion 1 proceeds.
Now consider a case where data needs to be copied in the data flow program 70 to be executed, as shown in FIG. 4. For example, when an output of an instruction of addition in FIG. 4 is referred by more than two other operations, instructions of multiplication and subtraction in FIG. 4, a copy processing is performed in the program storing portion 1. As shown in FIG. 3, the program storing portion 1 stores the copy presence/absence information 73.
The contents of portion of the data flow program 70 addressed based on the destination information of the inputted data packet 60 is read out. On this occasion, if the copy presence/absence information 73 indicates "absence", the data packet 60 with its contents of the destination fields 41 and the updated instruction field 42 updated is outputted, whereby the processing thereof is completed. On the other hand, if the copy presence/absence information 73 indicates "presence", the data packet 60 with its contents of the destination field 41 and the updated instruction field 42 is outputted and the stored subsequently destination information 71, instruction information 72 and copy presence/absence information 73 are read out. If the subsequently read out copy presence/absence information 73 indicates "absence", the data packet 60 is outputted which stores the same data as that of the inputted data packet 60 in the data 1 field 43 thereof and stores the just read out destination information 71 and instruction information 72 in the destination field 41 and the instruction field 42 thereof, respectively, whereby the processing is completed. If the subsequently read out copy presence/absence information 73 indicates "presence", the same copy processing will again be repeated.
In the above described information processor, once the copy processing is performed, a flow ratio of the data packets on the transmission path 6 for the input of the program storing portion 1 to the data packets on the transmission path 4 for the output from the program storing portion 1 becomes 1:2 without fail. The flow ratio of the data packets here is a ratio of the number of the data packets passing through these transmission paths per hour. FIG. 5 shows a flow rate of data packets on each transmission path, assuming that the flow rate of the data packets on the transmission path 4 is 1. The data pair detecting portion 2 outputs one data packet 60, in response to two data packets 60 being inputted. Therefore, even if it is assumed that the transmission path 4 operates at its highest capacity, only half of its highest capacity can be obtained through transmission path 5.
As the foregoing, in the copy processing at the program storing portion 1, the transmission paths 5 and 6 operate at only half the highest capacity thereof. Therefore, the operation processing portion 3 also operates at half its potential, thereby causing the reduction in the performance of the above described information processor during the execution of the program.
FIG. 6 is a block diagram showing another example of a structure of the conventional data flow type information processor.
The information processor of FIG. 6 is provided with two program storing portions 11 and 12. Each of the data packets 60 outputted from the operation processing portion 3 is inputted to either the program storing portions 11 or 12 through an allotting portion 13. The operation processing portion 3 and the allotting portion 13 are coupled to each other by a data transmission path 6. The allotting portion 13 is coupled to the program storing portions 11 and 12 through data transmission paths 16 and 17, respectively. Furthermore, the program storing portions 11 and 12 are individually coupled to the data pair detecting portion 2 through data transmission paths 14 and 15, respectively. Functions of the respective portions of the the information processor shown in FIG. 6 are completely the same as those of the respective portions of the information processor shown in FIG. 1. The allotting portion 13 allots the data packets 60 outputted from the operation processing portion 3 to either the program storing portions 11 or 12, in the order of their arrivals.
FIG. 7 shows a flow rate of data packets 60 on each transmission path on the assumption that both of the flow rates of the data packets on the transmission paths 14 and 15 are 1. In the information processor of FIG. 6, since the inputs from the data packets 60 to the program storing portions 11 and 12 are allotted by the allotting portion 13, the data packets 60 are inputted to the program storing portions 11 and 12 at a rate half of the highest capacity. When a copy process is performed at the program storing portions 11 and 12, the flow rate of the data packets outputted from the program storing portions 11 and 12 onto the transmission paths 14 and 15 doubles the flow rate of the data packets 60 inputted to the program storing portions 11 and 12 through the transmission paths 16 and 17. Namely, a flow rate at its highest capacity can be obtained on each of the transmission paths 14 and 15 for inputting the data packets 60 to the data pair detecting portion 2. In addition, a flow rate at its highest capacity can be obtained also on the transmission path 5 for the data packets 60 outputted from the data pair detecting portion 2, that is, the transmission path 5 for the data packets 60 inputted in the operation processing portion 3.
Accordingly, in the conventional information processor of FIG. 6, the performance of the operation processing portion 3 is enhanced to the maximum, so that theoretically, doubled effects of the parallel processing can be obtained as compared with the conventional information processor of FIG. 1.
The data flow type information processor shown in FIGS. 1 and 6 is disclosed in, for example, the article entitled "Examinations (1) and (2) on System Structure of Data Driven Type Processor" by Okamoto et al. from the Processings of 34th National Conference (the first half of 1987) of Information Processing Society pp. 237-240.
The conventional data flow type information processor shown in FIG. 6 comprises a doubled program storing portion for enhancing efficiency of processing by the above described data flow type information processor shown in FIG. 1.
However, since the data flow type information processor shown in FIG. 6 comprises the doubled program storing portion 1, the entire storage amount in the program storing portion 1 doubles that of the processor shown in FIG. 1. As a result, the information processor is larger.
Furthermore, since the data packets 60 which circulate among the processing portions in the processor, in the order of executions of the data flow program 70 stored in the program storing portion 1 are always processed in the pattern shown in FIG. 2, data lines (paths) of the data transmission paths connecting the respective processing portions are unnecessarily wide. More specifically, in reading the data flow program 70 from the program storing portion 1, essentially, only the data in the destination field 41 of the data packet 60 which indicates the subsequent processing instruction is required and the data in the instruction field 42, the data 1 field 43 and the data 2 field 44 of the data packet 60 is not required. In addition, also at the operation processing portion 3, the data in the instruction field 42, the data 1 field 43 and the data 2 field 44 of the data packet 60 is required and the data in the destination field 41 of the data packet 60 is not required, resulting in a physical waste of the structure of the processor.